package com.mjk.common.ai.entity;

import com.mjk.common.ai.enums.EmbeddingStatusEnum;
import com.mjk.common.ai.enums.GraphicalStatusEnum;
import com.mjk.common.base.model.BaseEntity;
import com.mjk.common.core.jdbc.annotation.ArcSharding;
import com.mjk.common.core.jdbc.annotation.Filed;
import com.mjk.common.core.jdbc.annotation.Id;
import com.mjk.common.core.jdbc.service.idgenerator.IdGenerateType;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 知识库条目实体
 */
@Data
@ArcSharding(dataSource = "pg", table = "adi_knowledge_base_item")
public class KnowledgeBaseItem extends BaseEntity {

    @Id(type = IdGenerateType.AUTO_UUID)
    private Long id;

    @Filed(cloum = "create_time")
    private LocalDateTime createTime;

    @Filed(cloum = "update_time")
    private LocalDateTime updateTime;

    @Filed(cloum = "is_deleted", comment = "是否删除（0：未删除，1：已删除）")
    private Boolean isDeleted;

    @Filed(cloum = "kb_id", comment = "知识库id")
    private Long kbId;

    @Filed(cloum = "kb_uuid", comment = "知识库uuid")
    private String kbUuid;

    @Filed(cloum = "source_file_id", comment = "名称")
    private Long sourceFileId;

    @Filed(cloum = "uuid", comment = "uuid")
    private String uuid;

    @Filed(cloum = "title", comment = "标题")
    private String title;

    @Filed(cloum = "brief", comment = "内容摘要")
    private String brief;

    @Filed(cloum = "remark", comment = "内容")
    private String remark;

    @Filed(cloum = "embedding_status", comment = "向量化状态")
    private EmbeddingStatusEnum embeddingStatus;

    @Filed(cloum = "embedding_status_change_time", comment = "向量化状态变更时间点")
    private LocalDateTime embeddingStatusChangeTime;

    @Filed(cloum = "graphical_status", comment = "图谱化状态")
    private GraphicalStatusEnum graphicalStatus;

    @Filed(cloum = "graphical_status_change_time", comment = "图谱化状态变更时间点")
    private LocalDateTime graphicalStatusChangeTime;
}
